package lol.clann.exampleplugin.config;

import lol.clann.clannboot.annotation.config.Configure;
import lol.clann.clannboot.annotation.load.Reload;
import lol.clann.clannboot.annotation.svc.Service;
import com.google.common.collect.Sets;
import org.nutz.ioc.loader.annotation.Inject;
import org.slf4j.Logger;

import java.util.Set;

/**
 * @author pyz
 * @date 2018/10/8 下午11:03
 */
// 配置推荐集中在一个Service里,方便管理
// 其他地方使用配置时,直接注入ExampleConfig即可
@Service
public class ExampleConfig {
    // Configure注解定义一个配置,会使用当前插件中所有@Configure注解定义的字段来生成配置文件
    // 重载插件会重载插件中所有Configure字段
    @Configure(value = "exampleplugin.interval", comment = "间隔时间")
    public int interval = 20;

    @Configure(value = "exampleplugin.dely", comment = "延迟")
    public int dely = 30;

    @Configure(value = "exampleplugin.message", comment = "延迟")
    public String kickMessage = "走好不送";

    @Configure(value = "exampleplugin.stopServerTime", comment = "重启时间,这里为每天凌晨和中午")
    public Set<String> stopServerTime = Sets.newHashSet("****-**-** 23:59:59", "****-**-** 12:00:00");

    @Inject
    private Logger logger;

    @Reload
    private void reload() {
        for (String s : stopServerTime) {
            logger.info("服务器将在 " + s + " 时重启");
        }
    }

}
